<?php
/*
*--------------------------------------------------------------
* 全局公共函数,该文件内的功能可在coding时任意使用
*--------------------------------------------------------------
* 最后修改时间 2011-4-13 Leon
* @version 1.0
* @author Leon(tmkook@gmail.com)
* @date 2010-2-27
*--------------------------------------------------------------
*/

/**
* 微秒计时
*
* @parame begin string 开始标记
* @parame end string 结束标记
* @return floot
*/
function T($begin,$end=''){
	static $times;
	if(!isset($times[$begin])){
		$times[$begin] = microtime(true);
	}
	if($end){
		if(!isset($times[$end])){
			$times[$end] = microtime(true);
		}
		return number_format($times[$end]-$times[$begin],4);
	}
}

/**
* 快速获取,修改配置
*
* @parame $key string 索引路径(配置文件/配置索引)
* @value data 如果该项有值则自动将索引值替换为该值
* @return data
*/
function C($key,$value=''){
	if(empty($value)){
		return config::get($key);
	}else{
		return config::set($key,$value);
	}
}

/*
* 获取语言
*
* @parame key string 语言索引(_PAGE_NOT_FOUND_)
* @return string
*/
function L($key){
    static $_lang;
    if(!isset($_lang)){
        $lang_path = _ROOT_.'lang/'.C('ini/language').'.php';
        if(file_exists($lang_path)){
            $_lang = include $lang_path;
        }else{
            ERROR_APP('Not Language '.C('ini/language'),'Language File Not Exists');
        }
    }
    return $_lang[$key];
}

/*
* 生成GET模式URL
*
* @parame uri 要生成的URI(Controller/Action/Key/Value)
* @return string 生成(http://domain/index.php?controller=Controller&action=Action&Key=Value)
*/
function buildGetUrl($uri){
    $uri = parse_url($uri);
    $uri = $uri['path'];
    $uri = trim($uri,'/');
    $index = C('route/index_page')? _FILENAME_ : '';
    if(empty($uri)) return _URL_.$index;
    (array)$parse = explode('/',$uri);
    foreach($parse as $key=>$val){
        if($key == 0){
            $uri = '?controller='. $val;
        }elseif($key == 1){
            $uri .= '&action='. $val;
        }elseif($key % 2 == 0){
            $uri .= '&'.$val.'=';
        }else{
            $uri .= $val;
        }
    }
    return _URL_.$index.$uri;
}

/*
* 快速生成URL
*
* @parame uri 要生成的URI(Controller/Action/Key/Value)
* @return string 生成(http://domain/index.php/Controller/Action/Key/Value)
*/
function buildPathUrl($uri){
    $uri = parse_url($uri);
    $uri = $uri['path'];
    $uri = trim($uri,'/');
    $index = C('route/index_page')? _FILENAME_ : '';
    if(empty($uri)) return _URL_.$index;
    if($index) $index .= '/';
    return _URL_.$index.$uri;
}

/*
* 系统自动生成URL
*
* @parame uri 要生成的URI(Controller/Action/Key/Value)
* @return string 根据ini中的配置自动选择生成的URL类型
*/
function url($uri=''){
    if(C('route/path_url')){
        return buildPathUrl($uri);
    }else{
        return buildGetUrl($uri);
    }
}

/*
* 由域名和程序所在根目录组成的URL
*
* @parame path 连接在根目录后面的路径
* @return string
*/
function base($path){
    $path = trim($path,'/');
    return _URL_.$path;
}

/*
* 页面跳转
*
* @parame uri 要跳转的URI
* @parame sec 停留秒数
* @return 无返回值
*/
function go($uri,$sec=0){
    if($sec > 0) sleep($sec);
    $url = url($uri);
    @header('Location:'.$url);
    echo '<meta http-equiv="refresh" content="0; url='.$url.'"> ';
    echo '<script language="javascript">window.location.href="'.$url.'"</script>';
}

//应用程序错误
function ERROR_APP($title,$message){
	require_once _APP_.'error/error_app.php';
	exit;
}

//404找不到页面
function ERROR_404($message){
	$title = L('_PAGE_NOT_FOUND_');
	require_once _APP_.'error/error_404.php';
	exit;
}

/*
* 自动加载 library 扩展库
*
* @parame file string (new class() 自动加载该类,系统函数)
* @return 无返回值
*/
function __autoload($file){
    //$file = ucfirst($file); //首字母大写
    $dirs = array(_ROOT_.'library/',_APP_.'coding/model/',);
    foreach($dirs as $dir){
        if(file_exists($dir.$file.'.php')){
            include $dir.$file.'.php';
            break;
        }
    }
}